package NowCoder.Mathematics;
import java.util.*;

/**
 * 链接：https://www.nowcoder.com/questionTerminal/e8fb8f89f5d147ec92fd8ecfefe89b0d
 * 来源：牛客网
 *
 * 因子个数
 * 时间限制：C/C++ 1秒，其他语言2秒空间限制：C/C++ 32M，其他语言64M
 * 一个正整数可以分解成一个或多个数组的积。例如36=2*2*3*3，即包含2和3两个因子。
 * NowCoder最近在研究因子个数的分布规律，现在给出一系列正整数，他希望你开发一个程序输出每个正整数的因子个数。
 *
 * 输入描述:
 * 输入包括多组数据。
 * 每组数据仅有一个整数n (2≤n≤100000)。
 * 输出描述:
 * 对应每个整数，输出其因子个数，每个结果占一行。
 *
 * 示例1
 * 输入
 * 30<br/>26<br/>20
 * 输出
 * 3<br/>2<br/>2
 */
public class 因子个数_编程_2_6_10 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        while(sc.hasNext()){
            int n = sc.nextInt();

            System.out.println(factorNums(n));
        }
    }

    public static int factorNums(int number){
        if(number == 1){
            return 1;
        }

        int count = 0;
        for(int i = 2;i <= Math.sqrt(number);i++){
            if(number % i == 0){
                while(number % i == 0){
                    number /= i;
                }
                count++;
            }
        }
        if(number != 1){
            count++;
        }

        return count;
    }
}
